Enforce chunk size provided by server capabilities
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 20 Jan 2025 03:55:33 +0000 (11:55 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 23 Jan 2025 02:13:51 +0000 (10:13 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/folder.cpp

index 7e30d02f3ab6e3f77132bc1a7489396cd7eb2e10..ee028cdd248b493cb24c02d65da425fe9e90dcec 100644 (file)
@@ -1154,16 +1154,17 @@ SyncOptions Folder::initializeSyncOptions() const
     opt._parallelNetworkJobs = account->isHttp2Supported() ? 20 : 6;
 
     // Chunk V2: Size of chunks must be between 5MB and 5GB, except for the last chunk which can be smaller
-    const auto capsMaxChunkSize = account->capabilities().maxChunkSize();
-    const auto validCapsChunkSize = capsMaxChunkSize <= 0;
-    const auto maxChunkSize = validCapsChunkSize ? capsMaxChunkSize : cfgFile.maxChunkSize();
-    const auto preferredChunkSize = validCapsChunkSize ? capsMaxChunkSize : cfgFile.chunkSize();
-
-    opt.setMinChunkSize(cfgFile.minChunkSize());
-    opt.setMaxChunkSize(maxChunkSize);
-    opt._initialChunkSize = ::qBound(opt.minChunkSize(), preferredChunkSize, opt.maxChunkSize());
-    opt._targetChunkUploadDuration = cfgFile.targetChunkUploadDuration();
-
+    if (const auto capsMaxChunkSize = account->capabilities().maxChunkSize(); capsMaxChunkSize <= 0) {
+        opt.setMinChunkSize(capsMaxChunkSize);
+        opt.setMaxChunkSize(capsMaxChunkSize);
+        opt._initialChunkSize = capsMaxChunkSize);
+    } else {
+        const auto cfgMinChunkSize = cfgFile.minChunkSize();
+        const auto cfgMaxChunkSize = cfgFile.maxChunkSize();
+        opt.setMinChunkSize(cfgMinChunkSize);
+        opt.setMaxChunkSize(cfgMaxChunkSize);
+        opt._initialChunkSize = ::qBound(cfgMinChunkSize, cfgFile.chunkSize(), cfgMaxChunkSize);
+    }
     opt.fillFromEnvironmentVariables();
     opt.verifyChunkSizes();